package cn.catsdad.repository;

import cn.catsdad.base.repository.api.IBaseCrudRepository;
import cn.catsdad.dto.DictDTO;

import java.util.Collection;
import java.util.List;

/**
 * 常量repository
 *
 * @author xuyonglong
 * @version V1.0 2023/4/24
 */
public interface DictRepository extends IBaseCrudRepository<DictDTO, Long> {

    /**
     * 根据名称、编码进行唯一性验证
     *
     * @param name 名称
     * @param code 编码
     * @param id   id
     * @return 存在数据条数
     */
    Integer countByNameAndCodeAndIdNotAndIsDeletedFalse(String name, String code, Long id);

    /**
     * 根据编码查询
     *
     * @param code 编码
     * @return 字典数据
     */
    DictDTO findFirstByCodeAndIsDeletedFalse(String code);

    /**
     * 根据编码查询
     *
     * @param codes 父级编码集合
     * @return 字典数据
     */
    List<DictDTO> findByCodeIn(Collection<String> codes);

}
